﻿#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QTcpServer>
#include <QTimer>
#include "mycombobox.h"

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

    QTcpServer *server;
    QTcpSocket *client;
    bool sendBtnFlag;
    QTimer *timer;

private slots:

    void on_pushButton_sendBtn_clicked();//发送数据

    void on_comboBox_choose_activated(const QString &arg1);//对应选择做初始化

    void on_pushButton_OpCl_clicked();//建立/断开连接

    void on_newClient_connetion();//服务器端检测是否有新的客户端连接

    void on_readRead_handler();//读取socket中的数据

    void mdisconnection();//检测客户端是否断开连接

    void mstateChanged(QAbstractSocket::SocketState socketState);//客户端状态变化

    void myComboBox_refresh();//服务器端可选的客户端地址刷新

    //void on_comboBox_clientChoose_activated(int index);

    void mRead_Data_From_Server();//客户端读取服务器端数取

    void onConnected();//检测连接定时器超时后上服务端后的操作

    void onError(QAbstractSocket::SocketError);//没连接上后的错误处理

    void timeOut();//客户端连接超时的处理

    void Disconnected();//客户端监听服务器端，如果断开则客户端也做出对应改变
private:
    Ui::Widget *ui;
    int childIndex;
};
#endif // WIDGET_H
